{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The autoreload extension is already loaded. To reload it, use:\n",
      "  %reload_ext autoreload\n"
     ]
    }
   ],
   "source": [
    "from __future__ import print_function\n",
    "import time\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "from cs231n.classifiers.fc_net import *\n",
    "from cs231n.data_utils import get_CIFAR10_data\n",
    "from cs231n.gradient_check import eval_numerical_gradient, eval_numerical_gradient_array\n",
    "from cs231n.solver import Solver\n",
    "\n",
    "%matplotlib inline\n",
    "plt.rcParams['figure.figsize'] = (10.0, 8.0)\n",
    "plt.rcParams['image.interpolation'] = 'nearest'\n",
    "plt.rcParams['image.cmap'] = 'gray'\n",
    "\n",
    "%load_ext autoreload\n",
    "%autoreload 2\n",
    "\n",
    "def rel_error(x, y):\n",
    "  return np.max(np.abs(x - y) / (np.maximum(1e-8, np.abs(x) + np.abs(y))))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "('X_train: ', (49000, 3, 32, 32))\n",
      "('y_train: ', (49000,))\n",
      "('X_val: ', (1000, 3, 32, 32))\n",
      "('y_val: ', (1000,))\n",
      "('X_test: ', (1000, 3, 32, 32))\n",
      "('y_test: ', (1000,))\n"
     ]
    }
   ],
   "source": [
    "data = get_CIFAR10_data()\n",
    "for k, v in list(data.items()):\n",
    "    print(('%s: ' % k, v.shape))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Affine Layer\n",
    "---"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Testing affine_forward function:\n",
      "difference:  9.7698500479884e-10\n"
     ]
    }
   ],
   "source": [
    "num_inputs = 2\n",
    "input_shape = (4, 5, 6)\n",
    "output_dim = 3\n",
    "\n",
    "input_size = num_inputs * np.prod(input_shape)\n",
    "weight_size = output_dim * np.prod(input_shape)\n",
    "\n",
    "x = np.linspace(-0.1, 0.5, num=input_size).reshape((num_inputs, *input_shape))\n",
    "w = np.linspace(-0.2, 0.3, num=weight_size).reshape(np.prod(input_shape), output_dim)\n",
    "b = np.linspace(-0.3, 0.1, output_dim)\n",
    "\n",
    "out, _ = affine_forward(x, w, b)\n",
    "correct_out = np.array([[ 1.49834967,  1.70660132,  1.91485297],\n",
    "                        [ 3.25553199,  3.5141327,   3.77273342]])\n",
    "print('Testing affine_forward function:')\n",
    "print('difference: ', rel_error(out, correct_out))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Testing affine_backward function:\n",
      "dx error:  (10, 2, 3) 1.0908199508708189e-10\n",
      "dw error:  (6, 5) 2.1752635504596857e-10\n",
      "db error:  (5,) 7.736978834487815e-12\n"
     ]
    }
   ],
   "source": [
    "np.random.seed(231)\n",
    "x = np.random.randn(10, 2, 3)\n",
    "w = np.random.randn(6, 5)\n",
    "b = np.random.randn(5)\n",
    "dout = np.random.randn(10, 5)\n",
    "\n",
    "_, cache = affine_forward(x, w, b)\n",
    "dx, dw, db = affine_backward(dout, cache)\n",
    "\n",
    "dx_num = eval_numerical_gradient_array(lambda z: affine_forward(x, w, b)[0], x, dout)\n",
    "dw_num = eval_numerical_gradient_array(lambda z: affine_forward(x, w, b)[0], w, dout)\n",
    "db_num = eval_numerical_gradient_array(lambda z: affine_forward(x, w, b)[0], b, dout)\n",
    "\n",
    "print('Testing affine_backward function:')\n",
    "print('dx error: ', dx.shape, rel_error(dx_num, dx))\n",
    "print('dw error: ', dw.shape, rel_error(dw_num, dw))\n",
    "print('db error: ', db.shape, rel_error(db_num, db))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "ReLU Layer\n",
    "---"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Testing relu_forward function:\n",
      "difference:  4.999999798022158e-08\n"
     ]
    }
   ],
   "source": [
    "x = np.linspace(-0.5, 0.5, num=12).reshape(3, 4)\n",
    "\n",
    "out, _ = relu_forward(x)\n",
    "correct_out = np.array([[ 0.,          0.,          0.,          0.,        ],\n",
    "                        [ 0.,          0.,          0.04545455,  0.13636364,],\n",
    "                        [ 0.22727273,  0.31818182,  0.40909091,  0.5,       ]])\n",
    "\n",
    "print('Testing relu_forward function:')\n",
    "print('difference: ', rel_error(out, correct_out))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Testing relu_backward function:\n",
      "dx error:  3.2756349136310288e-12\n"
     ]
    }
   ],
   "source": [
    "np.random.seed(231)\n",
    "x = np.random.randn(10, 10)\n",
    "dout = np.random.randn(*x.shape)\n",
    "\n",
    "dx_num = eval_numerical_gradient_array(lambda z: relu_forward(x)[0], x, dout)\n",
    "\n",
    "_, cache = relu_forward(x)\n",
    "dx = relu_backward(dout, cache)\n",
    "\n",
    "print('Testing relu_backward function:')\n",
    "print('dx error: ', rel_error(dx_num, dx))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\"Sandwich\" Layer\n",
    "---"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Testing affine_relu_forward and affine_relu_backward:\n",
      "dx error:  6.395535042049294e-11\n",
      "dw error:  8.162011105764925e-11\n",
      "db error:  7.826724021458994e-12\n"
     ]
    }
   ],
   "source": [
    "from cs231n.layer_utils import affine_relu_forward, affine_relu_backward\n",
    "np.random.seed(231)\n",
    "x = np.random.randn(2, 3, 4)\n",
    "w = np.random.randn(12, 10)\n",
    "b = np.random.randn(10)\n",
    "dout = np.random.randn(2, 10)\n",
    "\n",
    "out, cache = affine_relu_forward(x, w, b)\n",
    "dx, dw, db = affine_relu_backward(dout, cache)\n",
    "\n",
    "dx_num = eval_numerical_gradient_array(lambda z: affine_relu_forward(x, w, b)[0], x, dout)\n",
    "dw_num = eval_numerical_gradient_array(lambda z: affine_relu_forward(x, w, b)[0], w, dout)\n",
    "db_num = eval_numerical_gradient_array(lambda z: affine_relu_forward(x, w, b)[0], b, dout)\n",
    "\n",
    "print('Testing affine_relu_forward and affine_relu_backward:')\n",
    "print('dx error: ', rel_error(dx_num, dx))\n",
    "print('dw error: ', rel_error(dw_num, dw))\n",
    "print('db error: ', rel_error(db_num, db))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Softmax and SVM\n",
    "---"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Testing svm_loss:\n",
      "loss:  8.999602749096233\n",
      "dx error:  1.4021566006651672e-09\n"
     ]
    }
   ],
   "source": [
    "np.random.seed(231)\n",
    "num_classes = 10\n",
    "num_inputs = 50\n",
    "x = 0.001 * np.random.randn(num_inputs, num_classes)\n",
    "y = np.random.randint(num_classes, size=num_inputs)\n",
    "\n",
    "dx_num = eval_numerical_gradient(lambda z: svm_loss(x, y)[0], x)\n",
    "loss, dx = svm_loss(x, y)\n",
    "\n",
    "print('Testing svm_loss:')\n",
    "print('loss: ', loss)\n",
    "print('dx error: ', rel_error(dx_num, dx))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Testing softmax_loss:\n",
      "loss:  2.3025458445007376\n",
      "dx error:  8.234144091578429e-09\n"
     ]
    }
   ],
   "source": [
    "dx_num = eval_numerical_gradient(lambda z: softmax_loss(x, y)[0], x)\n",
    "loss, dx = softmax_loss(x, y)\n",
    "\n",
    "print('Testing softmax_loss:')\n",
    "print('loss: ', loss)\n",
    "print('dx error: ', rel_error(dx_num, dx))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Two-layer Network\n",
    "---"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Testing initialization ... \n"
     ]
    }
   ],
   "source": [
    "np.random.seed(231)\n",
    "N, D, H, C = 3, 5, 50, 7\n",
    "X = np.random.randn(N, D)\n",
    "y = np.random.randint(C, size=N)\n",
    "\n",
    "std = 1e-3\n",
    "model = TwoLayerNet(input_dim=D, hidden_dim=H, num_classes=C, weight_scale=std)\n",
    "\n",
    "print('Testing initialization ... ')\n",
    "W1_std = abs(model.params['W1'].std() - std)\n",
    "b1 = model.params['b1']\n",
    "W2_std = abs(model.params['W2'].std() - std)\n",
    "b2 = model.params['b2']\n",
    "assert W1_std < std / 10, 'First layer weights do not seem right'\n",
    "assert np.all(b1 == 0), 'First layer biases do not seem right'\n",
    "assert W2_std < std / 10, 'Second layer weights do not seem right'\n",
    "assert np.all(b2 == 0), 'Second layer biases do not seem right'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Testing test-time forward pass ... \n"
     ]
    }
   ],
   "source": [
    "print('Testing test-time forward pass ... ')\n",
    "model.params['W1'] = np.linspace(-0.7, 0.3, num=D*H).reshape(D, H)\n",
    "model.params['b1'] = np.linspace(-0.1, 0.9, num=H)\n",
    "model.params['W2'] = np.linspace(-0.3, 0.4, num=H*C).reshape(H, C)\n",
    "model.params['b2'] = np.linspace(-0.9, 0.1, num=C)\n",
    "\n",
    "X = np.linspace(-5.5, 4.5, num=N*D).reshape(D, N).T \n",
    "scores = model.loss(X)\n",
    "correct_scores = np.asarray(\n",
    "  [[11.53165108,  12.2917344,   13.05181771,  13.81190102,  14.57198434, 15.33206765,  16.09215096],\n",
    "   [12.05769098,  12.74614105,  13.43459113,  14.1230412,   14.81149128, 15.49994135,  16.18839143],\n",
    "   [12.58373087,  13.20054771,  13.81736455,  14.43418138,  15.05099822, 15.66781506,  16.2846319 ]])\n",
    "scores_diff = np.abs(scores - correct_scores).sum()\n",
    "assert scores_diff < 1e-6, 'Problem with test-time forward pass'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Testing training loss (no regularization)\n"
     ]
    }
   ],
   "source": [
    "print('Testing training loss (no regularization)')\n",
    "y = np.asarray([0, 5, 1])\n",
    "loss, grads = model.loss(X, y)\n",
    "correct_loss = 3.4702243556\n",
    "assert abs(loss - correct_loss) < 1e-10, 'Problem with training-time loss'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Testing training loss (with regularization)\n"
     ]
    }
   ],
   "source": [
    "print('Testing training loss (with regularization)')\n",
    "model.reg = 1.0\n",
    "loss, grads = model.loss(X, y)\n",
    "correct_loss = 26.5948426952\n",
    "assert abs(loss - correct_loss) < 1e-10, 'Problem with regularization loss'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Running numeric gradient check with reg =  0.0\n",
      "W1 relative error: 1.22e-08\n",
      "W2 relative error: 3.34e-10\n",
      "b1 relative error: 4.73e-09\n",
      "b2 relative error: 4.33e-10\n",
      "Running numeric gradient check with reg =  0.7\n",
      "W1 relative error: 2.53e-07\n",
      "W2 relative error: 1.37e-07\n",
      "b1 relative error: 1.56e-08\n",
      "b2 relative error: 9.09e-10\n"
     ]
    }
   ],
   "source": [
    "for reg in [0.0, 0.7]:\n",
    "    print('Running numeric gradient check with reg = ', reg)\n",
    "    model.reg = reg\n",
    "    loss, grads = model.loss(X, y)\n",
    "    \n",
    "    for name in sorted(grads):\n",
    "        num_result = eval_numerical_gradient(lambda _: model.loss(X, y)[0], model.params[name])\n",
    "        print('%s relative error: %.2e' % (name, rel_error(num_result, grads[name])))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Solver\n",
    "---"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 10 / 10 - best_val_acc: 0.528000\n"
     ]
    }
   ],
   "source": [
    "model = TwoLayerNet()\n",
    "\n",
    "solver = Solver(model, data, \n",
    "               update_rule='sgd', optim_config={'learning_rate':1e-3},\n",
    "               lr_decay=0.95, num_epoch=10, batch_size=100, print_every=100, verbose=False)\n",
    "solver.train()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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ExERERGRXlNoi1KrCorJSI7jyvPHOg3bnobmWi1AIiIiIiIyxCi0RaEjNY28uauCmxfkERfjAWudBUjGXgC5C90uT0RERERE+kChLQo9VVhCwMKyRcGhkSUFULEdFn4OjHG3OBERERER6ROFtijj8wdYvb6Ej07JJD8jyWksXAHxI+GCm9wtTkRERERE+kyhLcq8vaeSo7VNLF883mmoPwY7noc5yyAu2d3iRERERESkzxTaoszKgsOMTo1nyYzRTsPG30KgFRbe425hIiIiIiJyVhTaokjJiQb+9GElSxfmEev1QMAPRb+B8y6DzClulyciIiIiImdBoS2KrC4sxgC3ti1A8uErUFuqZf5FRERERIYwhbYo0eoP8FRhKR+fNpqctESnsXAFjMiBqVe7W5yIiIiIiJw1hbYo8frOCo7XN7P8omAvW9V+2P8WzL8bvDHuFiciIiIiImdNoS1KrCooJictkb+aGlyApPBR8MTAvL92tzARERERETknCm1R4NDxU/x533GWLszD6zHQ0gCbfw8zroPUMW6XJyIiIiIi50ChLQo8ub4Yr8dwy8I8p2H7M9BUA4s+525hIiIiIiJyzhTahrhmn5+nN5RyxYwxjBmRANZC4a9h9EzIv9jt8kRERERE5BwptA1xr2w/yolTLSxbHFyApGwDHNniXEzbGHeLExERERGRc6bQNsStLCgmPz2Jj0zOdBoKV0BcKsy+1d3CRERERESkXyi0DWH7jtWx/uAJbluUj8dj4FQVbH8WLlwK8alulyciIiIiIv1AoW0IW1lQTKzXcPOCXKdh0+/A3+wMjRQRERERkaig0DZENbX6eWZDKVeeP5bMlHgI+KHoMZjwURg9w+3yRERERESknyi0DVEvbT1CbZOP5YvHOw373oDqw+plExERERGJMgptQ9SqgsOcl5XMReelOw2FKyBlLEy/xt3CRERERESkXym0DUG7jtSysbiaZYvyMcbAiYOw93WYfxd4Y90uT0RERERE+pFC2xC0qqCYuBgPN80PLkBS9BgYD8y/093CRERERESk3/UqtBljrjLG7DHG7DPGPNjN9i8YY7YZYzYbY/5sjJnZ/6UKwKlmH89tKuOaC8aRlhQHrY3OqpHTPw0jst0uT0RERERE+tkZQ5sxxgv8DLgamAnc1k0oW2WtvcBaOwf4T+C/+r1SAeDFLeXU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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fe5aac08898>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.subplot(2, 1, 1)\n",
    "plt.title('Training Loss')\n",
    "plt.plot(solver.loss_history)\n",
    "plt.xlabel('Iteration')\n",
    "\n",
    "plt.subplot(2, 1, 2)\n",
    "plt.title('Accuracy')\n",
    "plt.plot(solver.train_acc_history, '-o', label='train')\n",
    "plt.plot(solver.val_acc_history, '-o', label='val')\n",
    "plt.plot([0.5] * len(solver.val_acc_history), 'k--')\n",
    "plt.xlabel('Epoch')\n",
    "plt.legend(loc='lower right')\n",
    "plt.gcf().set_size_inches(15, 12)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Multilayer Network\n",
    "---"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Checking initialization ...\n"
     ]
    }
   ],
   "source": [
    "np.random.seed(231)\n",
    "N, D, H1, H2, C = 2, 15, 20, 30, 10\n",
    "X = np.random.randn(N, D)\n",
    "y = np.random.randint(C, size=(N,))\n",
    "\n",
    "weight_scale = 5e-2\n",
    "model = FullyConnectedNet([H1, H2], input_dim=D, num_classes=C, reg=reg, weight_scale=weight_scale, dtype=np.float64)\n",
    "\n",
    "print('Checking initialization ...')\n",
    "for name in model.params:\n",
    "    if name.startswith('W'):\n",
    "        rel_err = abs(model.params[name].std() - weight_scale)\n",
    "        assert rel_err < weight_scale / 10, 'Weight %s do not seem right' % name\n",
    "    elif name.startswith('b'):\n",
    "        assert np.all(model.params[name] == 0), 'Bias %s do not seem right' % name\n",
    "    else:\n",
    "        pass\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Running check with reg =  0.0\n",
      "Initial loss:  2.3016482157750753\n",
      "W1 relative error: 3.44e-07\n",
      "W2 relative error: 5.01e-06\n",
      "W3 relative error: 1.40e-07\n",
      "b1 relative error: 1.48e-08\n",
      "b2 relative error: 9.48e-10\n",
      "b3 relative error: 1.28e-10\n",
      "Running check with reg =  3.14\n",
      "Initial loss:  6.94547942880963\n",
      "W1 relative error: 9.82e-07\n",
      "W2 relative error: 3.39e-07\n",
      "W3 relative error: 8.91e-09\n",
      "b1 relative error: 8.96e-09\n",
      "b2 relative error: 1.02e-08\n",
      "b3 relative error: 1.79e-10\n"
     ]
    }
   ],
   "source": [
    "for reg in [0.0, 3.14]:\n",
    "    print('Running check with reg = ', reg)\n",
    "    model = FullyConnectedNet([H1, H2], input_dim=D, num_classes=C, reg=reg, weight_scale=weight_scale, dtype=np.float64)\n",
    "    loss, grads = model.loss(X, y)\n",
    "    print('Initial loss: ', loss)\n",
    "\n",
    "    for name in sorted(grads):\n",
    "        f = lambda _: model.loss(X, y)[0]\n",
    "        num_grad = eval_numerical_gradient(f, model.params[name])\n",
    "        print('%s relative error: %.2e' % (name, rel_error(num_grad, grads[name])))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Iteration 1 / 40 - loss: 2.294937\n",
      "Epoch 0 / 20 - train acc: 0.320000; val_acc: 0.121000\n",
      "Epoch 1 / 20 - train acc: 0.400000; val_acc: 0.130000\n",
      "Epoch 2 / 20 - train acc: 0.420000; val_acc: 0.131000\n",
      "Epoch 3 / 20 - train acc: 0.640000; val_acc: 0.140000\n",
      "Epoch 4 / 20 - train acc: 0.740000; val_acc: 0.168000\n",
      "Epoch 5 / 20 - train acc: 0.700000; val_acc: 0.179000\n",
      "Iteration 11 / 40 - loss: 1.204400\n",
      "Epoch 6 / 20 - train acc: 0.860000; val_acc: 0.188000\n",
      "Epoch 7 / 20 - train acc: 0.880000; val_acc: 0.182000\n",
      "Epoch 8 / 20 - train acc: 0.880000; val_acc: 0.187000\n",
      "Epoch 9 / 20 - train acc: 0.880000; val_acc: 0.182000\n",
      "Epoch 10 / 20 - train acc: 0.880000; val_acc: 0.169000\n",
      "Iteration 21 / 40 - loss: 0.412206\n",
      "Epoch 11 / 20 - train acc: 0.980000; val_acc: 0.187000\n",
      "Epoch 12 / 20 - train acc: 0.980000; val_acc: 0.180000\n",
      "Epoch 13 / 20 - train acc: 1.000000; val_acc: 0.195000\n",
      "Epoch 14 / 20 - train acc: 0.980000; val_acc: 0.186000\n",
      "Epoch 15 / 20 - train acc: 0.960000; val_acc: 0.184000\n",
      "Iteration 31 / 40 - loss: 0.109977\n",
      "Epoch 16 / 20 - train acc: 1.000000; val_acc: 0.193000\n",
      "Epoch 17 / 20 - train acc: 1.000000; val_acc: 0.190000\n",
      "Epoch 18 / 20 - train acc: 1.000000; val_acc: 0.191000\n",
      "Epoch 19 / 20 - train acc: 1.000000; val_acc: 0.185000\n",
      "Epoch 20 / 20 - train acc: 1.000000; val_acc: 0.186000\n",
      "Epoch 20 / 20 - best_val_acc: 0.195000\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fe5acc86d30>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "num_train = 50\n",
    "small_data = {\n",
    "    'X_train': data['X_train'][:num_train],\n",
    "    'y_train': data['y_train'][:num_train],\n",
    "    'X_val': data['X_val'],\n",
    "    'y_val': data['y_val'],\n",
    "}\n",
    "\n",
    "weight_scale = 1e-2\n",
    "learning_rate = 0.86e-2\n",
    "\n",
    "model = FullyConnectedNet([100, 100], weight_scale=weight_scale)\n",
    "\n",
    "solver = Solver(model, small_data,\n",
    "               print_every=10, num_epoch=20, batch_size=25,\n",
    "               update_rule='sgd', optim_config={'learning_rate': learning_rate})\n",
    "\n",
    "solver.train()\n",
    "\n",
    "plt.plot(solver.loss_history, 'o')\n",
    "plt.title('Training loss history')\n",
    "plt.xlabel('Iteration')\n",
    "plt.ylabel('Training loss')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Iteration 1 / 40 - loss: 2.302504\n",
      "Epoch 0 / 20 - train acc: 0.180000; val_acc: 0.069000\n",
      "Epoch 1 / 20 - train acc: 0.160000; val_acc: 0.073000\n",
      "Epoch 2 / 20 - train acc: 0.160000; val_acc: 0.077000\n",
      "Epoch 3 / 20 - train acc: 0.160000; val_acc: 0.079000\n",
      "Epoch 4 / 20 - train acc: 0.160000; val_acc: 0.079000\n",
      "Epoch 5 / 20 - train acc: 0.160000; val_acc: 0.079000\n",
      "Iteration 11 / 40 - loss: 2.298945\n",
      "Epoch 6 / 20 - train acc: 0.160000; val_acc: 0.079000\n",
      "Epoch 7 / 20 - train acc: 0.160000; val_acc: 0.079000\n",
      "Epoch 8 / 20 - train acc: 0.160000; val_acc: 0.079000\n",
      "Epoch 9 / 20 - train acc: 0.160000; val_acc: 0.079000\n",
      "Epoch 10 / 20 - train acc: 0.160000; val_acc: 0.079000\n",
      "Iteration 21 / 40 - loss: 2.297143\n",
      "Epoch 11 / 20 - train acc: 0.160000; val_acc: 0.079000\n",
      "Epoch 12 / 20 - train acc: 0.160000; val_acc: 0.079000\n",
      "Epoch 13 / 20 - train acc: 0.160000; val_acc: 0.079000\n",
      "Epoch 14 / 20 - train acc: 0.180000; val_acc: 0.077000\n",
      "Epoch 15 / 20 - train acc: 0.240000; val_acc: 0.095000\n",
      "Iteration 31 / 40 - loss: 2.300394\n",
      "Epoch 16 / 20 - train acc: 0.200000; val_acc: 0.093000\n",
      "Epoch 17 / 20 - train acc: 0.180000; val_acc: 0.082000\n",
      "Epoch 18 / 20 - train acc: 0.220000; val_acc: 0.101000\n",
      "Epoch 19 / 20 - train acc: 0.220000; val_acc: 0.101000\n",
      "Epoch 20 / 20 - train acc: 0.180000; val_acc: 0.104000\n",
      "Epoch 20 / 20 - best_val_acc: 0.104000\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fe5aab76438>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "num_train = 50\n",
    "small_data = {\n",
    "    'X_train': data['X_train'][:num_train],\n",
    "    'y_train': data['y_train'][:num_train],\n",
    "    'X_val': data['X_val'],\n",
    "    'y_val': data['y_val'],\n",
    "}\n",
    "\n",
    "weight_scale = 1e-2\n",
    "learning_rate = 1.1e-2\n",
    "\n",
    "model = FullyConnectedNet([100, 100, 100, 100], weight_scale=weight_scale)\n",
    "\n",
    "solver = Solver(model, small_data,\n",
    "               print_every=10, num_epoch=20, batch_size=25,\n",
    "               update_rule='sgd', optim_config={'learning_rate': learning_rate})\n",
    "\n",
    "solver.train()\n",
    "\n",
    "plt.plot(solver.loss_history, 'o')\n",
    "plt.title('Training loss history')\n",
    "plt.xlabel('Iteration')\n",
    "plt.ylabel('Training loss')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "SGD + Momentum\n",
    "---"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [],
   "source": [
    "from cs231n.optim import sgd_momentum"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "next_w error:  8.882347033505819e-09\n",
      "velocity error:  4.269287743278663e-09\n"
     ]
    }
   ],
   "source": [
    "N, D = 4, 5\n",
    "w = np.linspace(-0.4, 0.6, num=N*D).reshape(N, D)\n",
    "dw = np.linspace(-0.6, 0.4, num=N*D).reshape(N, D)\n",
    "v = np.linspace(0.6, 0.9, num=N*D).reshape(N, D)\n",
    "\n",
    "config = {'learning_rate': 1e-3, 'velocity': v}\n",
    "next_w, _ = sgd_momentum(w, dw, config)\n",
    "\n",
    "expected_next_w = np.asarray([\n",
    "  [ 0.1406,      0.20738947,  0.27417895,  0.34096842,  0.40775789],\n",
    "  [ 0.47454737,  0.54133684,  0.60812632,  0.67491579,  0.74170526],\n",
    "  [ 0.80849474,  0.87528421,  0.94207368,  1.00886316,  1.07565263],\n",
    "  [ 1.14244211,  1.20923158,  1.27602105,  1.34281053,  1.4096    ]])\n",
    "expected_velocity = np.asarray([\n",
    "  [ 0.5406,      0.55475789,  0.56891579, 0.58307368,  0.59723158],\n",
    "  [ 0.61138947,  0.62554737,  0.63970526,  0.65386316,  0.66802105],\n",
    "  [ 0.68217895,  0.69633684,  0.71049474,  0.72465263,  0.73881053],\n",
    "  [ 0.75296842,  0.76712632,  0.78128421,  0.79544211,  0.8096    ]])\n",
    "\n",
    "print('next_w error: ', rel_error(next_w, expected_next_w))\n",
    "print('velocity error: ', rel_error(expected_velocity, config['velocity']))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "running with  sgd\n",
      "Iteration 1 / 200 - loss: 2.302386\n",
      "Epoch 0 / 5 - train acc: 0.081000; val_acc: 0.090000\n",
      "Epoch 1 / 5 - train acc: 0.135000; val_acc: 0.118000\n",
      "Epoch 2 / 5 - train acc: 0.119000; val_acc: 0.113000\n",
      "Iteration 101 / 200 - loss: 2.302964\n",
      "Epoch 3 / 5 - train acc: 0.131000; val_acc: 0.108000\n",
      "Epoch 4 / 5 - train acc: 0.130000; val_acc: 0.103000\n",
      "Epoch 5 / 5 - train acc: 0.162000; val_acc: 0.139000\n",
      "Epoch 5 / 5 - best_val_acc: 0.139000\n",
      "\n",
      "running with  sgd_momentum\n",
      "Iteration 1 / 200 - loss: 2.303270\n",
      "Epoch 0 / 5 - train acc: 0.106000; val_acc: 0.091000\n",
      "Epoch 1 / 5 - train acc: 0.171000; val_acc: 0.142000\n",
      "Epoch 2 / 5 - train acc: 0.100000; val_acc: 0.126000\n",
      "Iteration 101 / 200 - loss: 2.166146\n",
      "Epoch 3 / 5 - train acc: 0.259000; val_acc: 0.232000\n",
      "Epoch 4 / 5 - train acc: 0.279000; val_acc: 0.253000\n",
      "Epoch 5 / 5 - train acc: 0.309000; val_acc: 0.252000\n",
      "Epoch 5 / 5 - best_val_acc: 0.253000\n",
      "\n"
     ]
    }
   ],
   "source": [
    "num_train = 4000\n",
    "small_data = {\n",
    "  'X_train': data['X_train'][:num_train],\n",
    "  'y_train': data['y_train'][:num_train],\n",
    "  'X_val': data['X_val'],\n",
    "  'y_val': data['y_val'],\n",
    "}\n",
    "\n",
    "solvers = {}\n",
    "\n",
    "for update_rule in ['sgd', 'sgd_momentum']:\n",
    "    print('running with ', update_rule)\n",
    "    model = FullyConnectedNet([100, 100, 100, 100, 100], weight_scale=2e-2)\n",
    "    \n",
    "    solver = Solver(model, small_data, num_epoch=5, batch_size=100,\n",
    "                   update_rule=update_rule, optim_config={'learning_rate': 1e-2}, verbose=True)\n",
    "    \n",
    "    solvers[update_rule] = solver\n",
    "    solver.train()\n",
    "    print()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "RMSProp and Adam\n",
    "---"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [],
   "source": [
    "from cs231n.optim import rmsprop"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "next_w error:  9.524687511038133e-08\n",
      "cache error:  2.6477955807156126e-09\n"
     ]
    }
   ],
   "source": [
    "N, D = 4, 5\n",
    "w = np.linspace(-0.4, 0.6, num=N*D).reshape(N, D)\n",
    "dw = np.linspace(-0.6, 0.4, num=N*D).reshape(N, D)\n",
    "cache = np.linspace(0.6, 0.9, num=N*D).reshape(N, D)\n",
    "\n",
    "config = {'learning_rate': 1e-2, 'cache': cache}\n",
    "next_w, _ = rmsprop(w, dw, config=config)\n",
    "\n",
    "expected_next_w = np.asarray([\n",
    "  [-0.39223849, -0.34037513, -0.28849239, -0.23659121, -0.18467247],\n",
    "  [-0.132737,   -0.08078555, -0.02881884,  0.02316247,  0.07515774],\n",
    "  [ 0.12716641,  0.17918792,  0.23122175,  0.28326742,  0.33532447],\n",
    "  [ 0.38739248,  0.43947102,  0.49155973,  0.54365823,  0.59576619]])\n",
    "expected_cache = np.asarray([\n",
    "  [ 0.5976,      0.6126277,   0.6277108,   0.64284931,  0.65804321],\n",
    "  [ 0.67329252,  0.68859723,  0.70395734,  0.71937285,  0.73484377],\n",
    "  [ 0.75037008,  0.7659518,   0.78158892,  0.79728144,  0.81302936],\n",
    "  [ 0.82883269,  0.84469141,  0.86060554,  0.87657507,  0.8926    ]])\n",
    "\n",
    "print('next_w error: ', rel_error(expected_next_w, next_w))\n",
    "print('cache error: ', rel_error(expected_cache, config['cache']))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [],
   "source": [
    "from cs231n.optim import adam"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "next_w error:  1.1395691798535431e-07\n",
      "v error:  4.208314038113071e-09\n",
      "m error:  4.214963193114416e-09\n"
     ]
    }
   ],
   "source": [
    "N, D = 4, 5\n",
    "w = np.linspace(-0.4, 0.6, num=N*D).reshape(N, D)\n",
    "dw = np.linspace(-0.6, 0.4, num=N*D).reshape(N, D)\n",
    "m = np.linspace(0.6, 0.9, num=N*D).reshape(N, D)\n",
    "v = np.linspace(0.7, 0.5, num=N*D).reshape(N, D)\n",
    "\n",
    "config = {'learning_rate': 1e-2, 'm':m, 'v':v, 't':5}\n",
    "next_w, _ = adam(w, dw, config)\n",
    "\n",
    "expected_next_w = np.asarray([\n",
    "  [-0.40094747, -0.34836187, -0.29577703, -0.24319299, -0.19060977],\n",
    "  [-0.1380274,  -0.08544591, -0.03286534,  0.01971428,  0.0722929],\n",
    "  [ 0.1248705,   0.17744702,  0.23002243,  0.28259667,  0.33516969],\n",
    "  [ 0.38774145,  0.44031188,  0.49288093,  0.54544852,  0.59801459]])\n",
    "expected_v = np.asarray([\n",
    "  [ 0.69966,     0.68908382,  0.67851319,  0.66794809,  0.65738853,],\n",
    "  [ 0.64683452,  0.63628604,  0.6257431,   0.61520571,  0.60467385,],\n",
    "  [ 0.59414753,  0.58362676,  0.57311152,  0.56260183,  0.55209767,],\n",
    "  [ 0.54159906,  0.53110598,  0.52061845,  0.51013645,  0.49966,   ]])\n",
    "expected_m = np.asarray([\n",
    "  [ 0.48,        0.49947368,  0.51894737,  0.53842105,  0.55789474],\n",
    "  [ 0.57736842,  0.59684211,  0.61631579,  0.63578947,  0.65526316],\n",
    "  [ 0.67473684,  0.69421053,  0.71368421,  0.73315789,  0.75263158],\n",
    "  [ 0.77210526,  0.79157895,  0.81105263,  0.83052632,  0.85      ]])\n",
    "\n",
    "print('next_w error: ', rel_error(expected_next_w, next_w))\n",
    "print('v error: ', rel_error(expected_v, config['v']))\n",
    "print('m error: ', rel_error(expected_m, config['m']))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "running with  adam\n",
      "Iteration 1 / 200 - loss: 2.431072\n",
      "Epoch 0 / 5 - train acc: 0.149000; val_acc: 0.150000\n",
      "Epoch 1 / 5 - train acc: 0.390000; val_acc: 0.314000\n",
      "Epoch 2 / 5 - train acc: 0.482000; val_acc: 0.348000\n",
      "Iteration 101 / 200 - loss: 1.407113\n",
      "Epoch 3 / 5 - train acc: 0.544000; val_acc: 0.373000\n",
      "Epoch 4 / 5 - train acc: 0.571000; val_acc: 0.385000\n",
      "Epoch 5 / 5 - train acc: 0.605000; val_acc: 0.387000\n",
      "Epoch 5 / 5 - best_val_acc: 0.387000\n",
      "\n",
      "running with  rmsprop\n",
      "Iteration 1 / 200 - loss: 2.773366\n",
      "Epoch 0 / 5 - train acc: 0.129000; val_acc: 0.145000\n",
      "Epoch 1 / 5 - train acc: 0.380000; val_acc: 0.317000\n",
      "Epoch 2 / 5 - train acc: 0.440000; val_acc: 0.336000\n",
      "Iteration 101 / 200 - loss: 1.454176\n",
      "Epoch 3 / 5 - train acc: 0.454000; val_acc: 0.333000\n",
      "Epoch 4 / 5 - train acc: 0.514000; val_acc: 0.342000\n",
      "Epoch 5 / 5 - train acc: 0.551000; val_acc: 0.361000\n",
      "Epoch 5 / 5 - best_val_acc: 0.361000\n",
      "\n"
     ]
    }
   ],
   "source": [
    "learning_rates = {'rmsprop': 1e-4, 'adam': 1e-3}\n",
    "for update_rule in ['adam', 'rmsprop']:\n",
    "    print('running with ', update_rule)\n",
    "    model = FullyConnectedNet([100, 100, 100, 100, 100], weight_scale=5e-2)\n",
    "    solver = Solver(model, small_data,\n",
    "                  num_epoch=5, batch_size=100,\n",
    "                  update_rule=update_rule,\n",
    "                  optim_config={\n",
    "                    'learning_rate': learning_rates[update_rule]\n",
    "                  },\n",
    "                  verbose=True)\n",
    "    solvers[update_rule] = solver\n",
    "    solver.train()\n",
    "    print()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Train a good model!\n",
    "---"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 10 / 10 - best_val_acc: 0.413000\n",
      "learning_rate is: 1.55e-05, weight_scale is: 7.50e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.379000\n",
      "learning_rate is: 1.70e-05, weight_scale is: 7.84e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.458000\n",
      "learning_rate is: 1.91e-05, weight_scale is: 7.60e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.407000\n",
      "learning_rate is: 1.85e-05, weight_scale is: 7.73e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.420000\n",
      "learning_rate is: 1.65e-05, weight_scale is: 7.31e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.432000\n",
      "learning_rate is: 1.95e-05, weight_scale is: 7.09e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.416000\n",
      "learning_rate is: 1.83e-05, weight_scale is: 7.37e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.428000\n",
      "learning_rate is: 1.93e-05, weight_scale is: 7.80e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.408000\n",
      "learning_rate is: 1.72e-05, weight_scale is: 7.48e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.423000\n",
      "learning_rate is: 1.51e-05, weight_scale is: 7.24e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.397000\n",
      "learning_rate is: 1.89e-05, weight_scale is: 7.68e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.399000\n",
      "learning_rate is: 1.75e-05, weight_scale is: 7.36e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.420000\n",
      "learning_rate is: 1.88e-05, weight_scale is: 7.22e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.406000\n",
      "learning_rate is: 1.58e-05, weight_scale is: 7.22e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.388000\n",
      "learning_rate is: 1.64e-05, weight_scale is: 7.49e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.360000\n",
      "learning_rate is: 1.83e-05, weight_scale is: 7.99e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.453000\n",
      "learning_rate is: 1.88e-05, weight_scale is: 7.22e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.374000\n",
      "learning_rate is: 1.70e-05, weight_scale is: 7.35e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.411000\n",
      "learning_rate is: 1.77e-05, weight_scale is: 7.96e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.437000\n",
      "learning_rate is: 1.72e-05, weight_scale is: 7.41e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.410000\n",
      "learning_rate is: 1.90e-05, weight_scale is: 7.79e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.435000\n",
      "learning_rate is: 1.95e-05, weight_scale is: 7.49e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.400000\n",
      "learning_rate is: 1.67e-05, weight_scale is: 7.38e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.396000\n",
      "learning_rate is: 1.82e-05, weight_scale is: 7.44e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.430000\n",
      "learning_rate is: 1.98e-05, weight_scale is: 7.11e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.405000\n",
      "learning_rate is: 1.73e-05, weight_scale is: 7.15e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.367000\n",
      "learning_rate is: 1.57e-05, weight_scale is: 7.88e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.416000\n",
      "learning_rate is: 1.53e-05, weight_scale is: 7.07e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.408000\n",
      "learning_rate is: 1.72e-05, weight_scale is: 7.85e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.436000\n",
      "learning_rate is: 1.51e-05, weight_scale is: 7.14e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.391000\n",
      "learning_rate is: 1.56e-05, weight_scale is: 7.57e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.439000\n",
      "learning_rate is: 1.63e-05, weight_scale is: 7.43e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.411000\n",
      "learning_rate is: 1.86e-05, weight_scale is: 7.42e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.396000\n",
      "learning_rate is: 1.74e-05, weight_scale is: 7.87e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.401000\n",
      "learning_rate is: 1.55e-05, weight_scale is: 7.41e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.399000\n",
      "learning_rate is: 1.70e-05, weight_scale is: 7.59e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.425000\n",
      "learning_rate is: 1.64e-05, weight_scale is: 7.58e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.377000\n",
      "learning_rate is: 1.87e-05, weight_scale is: 7.06e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.413000\n",
      "learning_rate is: 1.80e-05, weight_scale is: 7.12e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.457000\n",
      "learning_rate is: 1.93e-05, weight_scale is: 7.47e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.447000\n",
      "learning_rate is: 1.61e-05, weight_scale is: 7.94e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.395000\n",
      "learning_rate is: 1.60e-05, weight_scale is: 7.99e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.415000\n",
      "learning_rate is: 1.90e-05, weight_scale is: 7.11e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.368000\n",
      "learning_rate is: 1.92e-05, weight_scale is: 7.67e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.367000\n",
      "learning_rate is: 1.62e-05, weight_scale is: 7.97e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.443000\n",
      "learning_rate is: 1.90e-05, weight_scale is: 7.39e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.402000\n",
      "learning_rate is: 1.58e-05, weight_scale is: 7.78e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.430000\n",
      "learning_rate is: 1.59e-05, weight_scale is: 7.92e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.365000\n",
      "learning_rate is: 1.90e-05, weight_scale is: 7.24e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.407000\n",
      "learning_rate is: 1.87e-05, weight_scale is: 7.89e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.427000\n",
      "learning_rate is: 1.52e-05, weight_scale is: 7.81e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.398000\n",
      "learning_rate is: 1.72e-05, weight_scale is: 7.64e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.440000\n",
      "learning_rate is: 1.71e-05, weight_scale is: 7.72e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.434000\n",
      "learning_rate is: 1.96e-05, weight_scale is: 7.68e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.451000\n",
      "learning_rate is: 1.58e-05, weight_scale is: 7.42e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.414000\n",
      "learning_rate is: 1.74e-05, weight_scale is: 7.92e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.428000\n",
      "learning_rate is: 1.50e-05, weight_scale is: 7.52e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.409000\n",
      "learning_rate is: 1.84e-05, weight_scale is: 7.18e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.436000\n",
      "learning_rate is: 1.99e-05, weight_scale is: 7.93e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.370000\n",
      "learning_rate is: 1.60e-05, weight_scale is: 7.38e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.376000\n",
      "learning_rate is: 1.52e-05, weight_scale is: 7.07e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.434000\n",
      "learning_rate is: 1.87e-05, weight_scale is: 7.78e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.418000\n",
      "learning_rate is: 1.59e-05, weight_scale is: 7.29e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.370000\n",
      "learning_rate is: 1.62e-05, weight_scale is: 7.34e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.439000\n",
      "learning_rate is: 1.61e-05, weight_scale is: 7.18e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.403000\n",
      "learning_rate is: 1.53e-05, weight_scale is: 7.06e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.415000\n",
      "learning_rate is: 1.50e-05, weight_scale is: 7.52e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.373000\n",
      "learning_rate is: 1.70e-05, weight_scale is: 7.27e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.400000\n",
      "learning_rate is: 1.60e-05, weight_scale is: 7.24e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.446000\n",
      "learning_rate is: 1.73e-05, weight_scale is: 7.33e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.446000\n",
      "learning_rate is: 1.50e-05, weight_scale is: 7.83e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.434000\n",
      "learning_rate is: 1.95e-05, weight_scale is: 7.66e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.449000\n",
      "learning_rate is: 1.58e-05, weight_scale is: 7.78e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.405000\n",
      "learning_rate is: 1.72e-05, weight_scale is: 7.22e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.431000\n",
      "learning_rate is: 1.62e-05, weight_scale is: 7.39e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.376000\n",
      "learning_rate is: 1.90e-05, weight_scale is: 7.31e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.408000\n",
      "learning_rate is: 1.92e-05, weight_scale is: 7.07e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.440000\n",
      "learning_rate is: 1.98e-05, weight_scale is: 7.86e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.408000\n",
      "learning_rate is: 1.58e-05, weight_scale is: 7.96e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.428000\n",
      "learning_rate is: 1.95e-05, weight_scale is: 7.34e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.435000\n",
      "learning_rate is: 1.66e-05, weight_scale is: 7.70e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.372000\n",
      "learning_rate is: 1.78e-05, weight_scale is: 7.36e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.454000\n",
      "learning_rate is: 1.79e-05, weight_scale is: 7.47e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.428000\n",
      "learning_rate is: 1.82e-05, weight_scale is: 7.75e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.426000\n",
      "learning_rate is: 1.97e-05, weight_scale is: 7.20e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.395000\n",
      "learning_rate is: 1.56e-05, weight_scale is: 7.35e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.452000\n",
      "learning_rate is: 1.90e-05, weight_scale is: 7.56e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.411000\n",
      "learning_rate is: 1.62e-05, weight_scale is: 7.04e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.395000\n",
      "learning_rate is: 1.53e-05, weight_scale is: 7.40e-04\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 10 / 10 - best_val_acc: 0.439000\n",
      "learning_rate is: 1.86e-05, weight_scale is: 7.88e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.433000\n",
      "learning_rate is: 1.63e-05, weight_scale is: 7.74e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.379000\n",
      "learning_rate is: 1.54e-05, weight_scale is: 7.14e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.410000\n",
      "learning_rate is: 1.68e-05, weight_scale is: 7.11e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.440000\n",
      "learning_rate is: 1.63e-05, weight_scale is: 7.98e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.432000\n",
      "learning_rate is: 1.52e-05, weight_scale is: 7.18e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.395000\n",
      "learning_rate is: 1.66e-05, weight_scale is: 7.13e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.426000\n",
      "learning_rate is: 1.92e-05, weight_scale is: 7.02e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.368000\n",
      "learning_rate is: 1.72e-05, weight_scale is: 7.43e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.403000\n",
      "learning_rate is: 1.60e-05, weight_scale is: 7.82e-04\n",
      "Epoch 10 / 10 - best_val_acc: 0.429000\n",
      "learning_rate is: 1.96e-05, weight_scale is: 7.59e-04\n",
      "==== Best Model ====\n",
      "hidden_dim:  [50, 50, 50, 50, 50]\n",
      "reg:  1.0\n",
      "normalization:  batch_norm\n",
      "weight_scale:  0.0007598335564915709\n",
      "dropout:  1\n",
      "==== Best Solver ====\n",
      "optim_config:  {'learning_rate': 1.9100154301990324e-05}\n",
      "lr_decay:  1.0\n",
      "batch_size:  100\n",
      "==== Best Val Acc ====\n",
      "best_val_acc:  0.458\n"
     ]
    }
   ],
   "source": [
    "best_val_acc = 0.0\n",
    "best_solver = None\n",
    "\n",
    "hidden_dims = [50] * 5\n",
    "\n",
    "for i in range(100):\n",
    "    lr = np.random.uniform(1.5e-5, 2.0e-5)\n",
    "    ws = np.random.uniform(7e-4, 8e-4)\n",
    "    model = FullyConnectedNet(hidden_dims, dropout=1, \n",
    "                              normalization='batch_norm', reg=1.0, weight_scale=ws)\n",
    "    solver = Solver(model, data, update_rule='adam', \n",
    "                    optim_config={'learning_rate':lr}, lr_decay=1.0, num_epoch=10, batch_size=100,\n",
    "                   verbose=False)\n",
    "    solver.train()\n",
    "    val_acc = np.max(solver.val_acc_history)\n",
    "    \n",
    "    print('learning_rate is: %.2e, weight_scale is: %.2e' %(lr, ws))\n",
    "    if val_acc > best_val_acc:\n",
    "        best_val_acc = val_acc\n",
    "        best_model = model\n",
    "        best_solver = solver\n",
    "        best_hidden_dims = hidden_dims\n",
    "\n",
    "print('==== Best Model ====')\n",
    "print('hidden_dim: ', best_model.hidden_dims)\n",
    "print('reg: ', best_model.reg)\n",
    "print('normalization: ', best_model.normalization)\n",
    "print('weight_scale: ', best_model.weight_scale)\n",
    "print('dropout: ', best_model.dropout)\n",
    "print('==== Best Solver ====')\n",
    "print('optim_config: ', best_solver.optim_config)\n",
    "print('lr_decay: ', best_solver.lr_decay)\n",
    "print('batch_size: ', best_solver.batch_size)\n",
    "print('==== Best Val Acc ====')\n",
    "print('best_val_acc: ', best_val_acc)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 100 / 100 - best_val_acc: 0.535000\n",
      "learning_rate is: 1.91e-05, weight_scale is: 7.60e-04\n"
     ]
    }
   ],
   "source": [
    "best_val_acc = 0.0\n",
    "best_solver = None\n",
    "\n",
    "hidden_dims = [50] * 5\n",
    "lr = 1.91e-5\n",
    "ws = 7.6e-4\n",
    "\n",
    "model = FullyConnectedNet(hidden_dims, dropout=1, \n",
    "                          normalization='batch_norm', reg=1.0, weight_scale=ws)\n",
    "solver = Solver(model, data, update_rule='adam', \n",
    "                optim_config={'learning_rate':lr}, lr_decay=1.0, num_epoch=100, batch_size=100,\n",
    "               verbose=False)\n",
    "solver.train()\n",
    "val_acc = np.max(solver.val_acc_history)\n",
    "\n",
    "print('learning_rate is: %.2e, weight_scale is: %.2e' %(lr, ws))\n",
    "if val_acc > best_val_acc:\n",
    "    best_val_acc = val_acc\n",
    "    best_model = model\n",
    "    best_solver = solver\n",
    "    best_hidden_dims = hidden_dims"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f63d23f0588>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(best_solver.loss_history)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f63cfdc4ac8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(best_solver.train_acc_history)\n",
    "plt.plot(best_solver.val_acc_history)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1000 / 1000 - best_val_acc: 0.550000\n",
      "learning_rate is: 1.91e-05, weight_scale is: 7.60e-04\n"
     ]
    }
   ],
   "source": [
    "best_val_acc = 0.0\n",
    "best_solver = None\n",
    "\n",
    "hidden_dims = [50] * 5\n",
    "lr = 1.91e-5\n",
    "ws = 7.6e-4\n",
    "\n",
    "model = FullyConnectedNet(hidden_dims, dropout=1, \n",
    "                          normalization='batch_norm', reg=1.5, weight_scale=ws)\n",
    "solver = Solver(model, data, update_rule='adam', \n",
    "                optim_config={'learning_rate':lr}, lr_decay=1.0, num_epoch=1000, batch_size=200,\n",
    "               verbose=False)\n",
    "solver.train()\n",
    "val_acc = np.max(solver.val_acc_history)\n",
    "\n",
    "print('learning_rate is: %.2e, weight_scale is: %.2e' %(lr, ws))\n",
    "if val_acc > best_val_acc:\n",
    "    best_val_acc = val_acc\n",
    "    best_model = model\n",
    "    best_solver = solver\n",
    "    best_hidden_dims = hidden_dims"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f63cfbf3128>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(best_solver.loss_history)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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iIiIKNbiH1jNuw9oXO+9rYoTgxIREVHhxT+wqg6YCLTbDtG3g4iIiGIv/oFVVY/M2yo4OSgREREVXvwDq3Qq8zalom8HERERxV4JBFaynM1xTdcXtx1EREQUeyUQWEnGaiVYsE5ERESdK/7zWDmBVatO4OTmq3H0mB1xWpGbRERERPFUMhmrFMrwano3LO81scgNIiIiorgqgcBKaqxakQAAVCTj/5KJiIioOOIfZVgZKwBIcEQgERERdZKSCaxMxoqIiIios8Q/sGptAQCkGFgRERFRJ4t/YNVWYxX/l0pERETFFf9oo63GihkrIiIi6lwlEVilkQAgReu6uK0hIiKiGCuNwEoxW0VERESdryQCq1YGVkRERBSBEgisWj2F68kE57EiIiKizhH7tQJ1OoVWJDBqx+740sg+OGv/YcVuEhEREcVUrAOrF95bieWvLsZRCYV+dVW4+ujRxW4SERERxVisuwKfWfAZEmhFCgkcv1dDsZtDREREMRfrwKo1rVGupMZqRH1tsZtDREREMRfrwCqtIRkrnUBleaxfKhEREXUBsY420lojiTRSSKAiEeuXSkRERF1ArKONtNZtNVaVyVi/VCIiIuoCYh1tVDevxuTEXFShGRUMrIiIiKiTxTraOHLNIwCAoWWfozLJ2deJiIioc8U6sNqqqtsuM2NFREREnS3W0cZmVdN2OVHGpWyIiIioc8U6sNqquhW7CURERFRCQgVWSqlJSqn3lVKLlFJXBdz/TaXUO0qpt5RS/6eU6hJrxyidKnYTiIiIqITkDayUUgkAdwCYDGA0gJMDAqeHtdZjtdZ7ALgFwM8L3tKOaG0udguIiIiohITJWE0EsEhrvVhr3QzgUQBT7Q201husqzUAdOGauA1STQCArzXdUOSGEBERUSlIhthmIICl1vVlAPbxb6SUmgHg2wAqABwW9EBKqekApgPA4MGD29vW9ku3AADe0cM6/7mIiIio5IXJWAUNp8vISGmt79BaDwdwJYBrgh5Ia3231nqC1npCfX19+1raAUmdQlorpMA5rIiIiKjzhQmslgEYZF1vALA8x/aPAjh2WxpVKAndghYkERwbEhERERVWmMBqLoCRSqlhSqkKACcBmGVvoJQaaV09GsCHhWtix5WjBc2hejuJiIiItl3eqENrnVJKXQTgGQAJAPdrrRcopW4EME9rPQvA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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f63cfc95c88>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(best_solver.train_acc_history)\n",
    "plt.plot(best_solver.val_acc_history)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Validation set accuracy:  0.474\n",
      "Test set accuracy:  0.432\n"
     ]
    }
   ],
   "source": [
    "y_test_pred = np.argmax(best_model.loss(data['X_test']), axis=1)\n",
    "y_val_pred = np.argmax(best_model.loss(data['X_val']), axis=1)\n",
    "print('Validation set accuracy: ', (y_val_pred == data['y_val']).mean())\n",
    "print('Test set accuracy: ', (y_test_pred == data['y_test']).mean())"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
